% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2, or (at your option)
% any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
% Hard copies of this button were first distributed at the January
% 1992 San Francisco Usenix. They had black lettering on a yellow
% background on a standard 2 1/4" safety pin button. They were
% designed by Leonard H. Tower Jr. who is also the author of this GNU
% Button Program.
%
% Report bugs or improvements to: tower@prep.ai.mit.edu
%
% Hard copies of this button are probably still available. To get a
% button, one must have either donated source code or documentation to
% the GNU Project or make a donation of at least $ 2.00 for each button.
%
% If you wish a hard copy of a gnu button send:
% - a self-addressed, stamped envelope; and
% - either:
% - a reminder of your source or documentation contribution; or
% - a donation payable to the "Free Software Foundation"; and
% - specify which of these different versions you wish:
% Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, Jun 90, Jan 91,
% Jun 91 and/or Jan 92
% to: L. Tower Jr.
% 36 Porter Street,
% Somerville, MA 02143, USA
%
% This program is available for anonymous ftp
% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available
% in other source archives.
erasepage
% debugging help
%.so ehandler.ps
% uses {in,out}sidecircletext routines from Adobe Cookbook.
.so circtext.ps
% center button on 8 1/2" x 11" page
306 396 translate
% This is a kludge to give better edge resolution.
% Note that postscript's scale command doesn't cut it.
% It scales after the edges are set.
% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger.
% The master is reduced that much by the button manufacturer.
% If only 1200 dpi postscript printers were more common ...
/biggg 1 def
% useful for centering things
/circleguide {
gsave
/radius 82 biggg mul def
.5 setlinewidth
newpath
0 0 radius 0 360 arc
stroke
grestore
} def
%circleguide
gsave
% define the basic dimensions of the letters
% people are welcome to call this typeface: hornart-deco
/tipangle 30 def
/gta 90 tipangle sub def % g tip angle
/uta 90 tipangle add def % u tip angle
/tiprad 4 biggg mul def
/hornrad 32 biggg mul def
/letsep 8 biggg mul def
/letheight 28 biggg mul def
/letwidth 14 biggg mul def
/letrad 8 biggg mul def
/linewidth 4 biggg mul def
linewidth setlinewidth
0 tiprad neg moveto % roughly center
0 setgray
.1 setflat
% give us a G !
/letcenter letwidth letsep add neg def
1 setlinejoin
1 setlinecap % wish there was a pointy default!
newpath
letcenter hornrad tiprad add tiprad 270 gta arc
stroke
1 setlinejoin
0 setlinecap
letcenter hornrad tiprad add tiprad gta 270 arcn
stroke
newpath
0 setlinejoin
2 setlinecap
newpath
letcenter 0 hornrad 90 270 arc
currentpoint
letrad add letrad 270 0 arc
0 letheight 2 div rlineto
% letwidth 2 div neg 0 rlineto
/Helvetica-Narrow-Bold findfont linewidth 1.5 mul scalefont setfont
currentpoint
stroke
moveto
(THANX) stringwidth exch linewidth .6 mul add neg exch
2 mul linewidth .6 mul add neg rlineto
(THANX) show
% give us a N !
newpath
letwidth 2 div neg hornrad neg moveto
0 letheight rlineto
letwidth letheight neg rlineto
0 letheight rlineto
currentpoint
stroke
moveto
linewidth .7 mul letheight linewidth 2 mul add neg rmoveto
('s Not Unix) show
% give us a U !
/letcenter letcenter neg def
1 setlinejoin
1 setlinecap % wish there was a pointy default!
newpath
letcenter hornrad tiprad add tiprad 270 uta arcn
stroke
1 setlinejoin
0 setlinecap
newpath
stroke
letcenter hornrad tiprad add tiprad uta 270 arc
stroke
0 setlinejoin
2 setlinecap
newpath
letcenter 0 hornrad 90 270 arcn
currentpoint
letrad add letrad 270 180 arcn
0 letheight letrad sub rlineto
currentpoint
stroke
% what does it spell?!? GNU !!
% now for the eye!
moveto
letwidth .8 mul letheight .4 mul neg rmoveto
/Courier-Oblique findfont 15 biggg mul scalefont setfont
(@) show
grestore
gsave
/Helvetica-Narrow-Bold findfont 5.75 biggg mul scalefont setfont
(Copyright 1992 Free Software Foundation, Inc.)
7.5 biggg mul 270 73 biggg mul outsidecircletext
(Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.)